"""
1.如何获取用户的输入信息(1分)?写出语法！
info = input(‘请输入内容:’)

2.python中输出的函数语法是什么(1分)？如何输出不换行(1分)？请写出具体语法！
def fn():
    return
print(fn())
print(fn(), end='\t')

3.分析以下的代码,用户输入的数据为:1,打印输出的内容是什么?(1分)
		num = input(“请输入整数数字:”)
		print(num == 1)     # num得到的是字符串,不能和整数相等
False

4.变量的作用是什么（0.5分）?定义变量的语法是什么（0.5分）？什么时候需要使用变量（0.5分）？
变量的作用: python运行时命令电脑上开辟一个内存空间,该内存空间用来储存数据.使用变量名就可以使用储存在变量中的数据.
语法: 变量名 = 值    例: name = 'Tony'
需要重复的调用一个数据时使用变量

5.如何获取变量中的数据内存地址值（1分）？
print(id(变量名))

6.python中变量有类型吗（1分）？怎么获取数据的类型（1分）?
变量分为全局变量和局部变量
print(type(数据))

7.标识符的命名规则是什么（1分）?常见的三种命名方式有哪些,举例说明(1.5分)？
命名规则:   1.字母数字下划线组成,不能数字开头
           2.区分大小写
           3.不能使用python关键字
常见命名方式: 1.见名知意  定义姓名 name
            2.驼峰命名法 大驼峰:UserName 小驼峰userName
            3.下划线命名法 user_name

8.python中常见的数据类型有哪些(写出对应的英文)(4分)？
string(字符串)     单引号/双引号/三单引号/三双引号
boolean(布尔型)    True  False
number(数字)  int  float
list(列表)
tuple(元组)
dict(字典)
set(集合)

9.bool类型有哪两个值(1分)？其他数据类型当成布尔值处理的原则是什么(2分)?
True(1)  False(0)
空容器和字符串,None,整型0, 浮点数0 当做0(False)处理,其他当做1(True)处理

10.你接触过python的哪些数据之间的相互转换，分别写出对应的语法（3分）。
# int -> float
float1 = float(int(1))
# int -> bool
bool1 = bool(int(0))
# int -> str
str1 = str(int(123))

# float -> int
int1 = int(float(12.5))
# float -> bool
bool2 = bool(float(1.5))
# float -> str
str2 = str(float(12.5))

# list -> tuple
list1 = [1, 2, 3]
tuple1 = tuple(list1)
# list -> set
s1 = set(list1)

# tuple -> list
list2 = list(tuple1)
# tuple -> set
s2 = set(tuple1)
# set -> list
list3 = list(s2)
# set -> tuple
tuple2 = tuple(s2)

11.写出字符串的两种格式化语法？(2分)
name = '朱梓鑫'
age = 18
weight = 186

print('我的名字是:%s, 我的年龄是:%d, 我的体重是:%.2f' % (name, age, weight))
print(f'我的名字是:{name}, 我的年龄是:{age}, 我的体重是:{weight}')

12.在字符串中“\”是什么（1分）？有什么意义（1分）？举一些“\”的使用实例（1分）。
“\”是转义字符
与其他字符搭配可以实现特殊的功能
'\n'换行  '\t'代表tab键

13.写出if语句的完整语法（3分）？以及描述清楚if的执行过程（2分）?
if 条件表达式1:
    满足条件表达式1执行的代码块.
elif 条件表达式2:
    满足条件表达式2执行的代码块.
elif 条件表达式3:
    满足条件表达式3执行的代码块.
...
else:
    以上条件都不满足,执行这里的代码块.

if语句的执行过程为:先进行条件表达式1的验证,验证通过执行满足条件表达式1执行的代码块.不满足则进行条件表达式2的验证,验证通过执行满足条件表达式2执行的代码块.不满足则进行条件表达式3的验证,
验证通过执行满足条件表达式3执行的代码块.依次往下进行验证操作,如果所有的条件都不满足,则执行else的代码块.

14.写出while的完整语法（3分）？以及描述清楚while完整语法的执行过程（2分）?
while 条件表达式:
    循环体

while的执行过程为先进性条件判断,不满足进入循环体,执行一次后看是否满足条件,满足条件跳出while语句,不满足则再次进入循环体,执行后看是否满足条件,满足跳出,不满足再次进入循环体.

15.写出for的完整语法结构（2分）？for循环适用于哪些数据类型（1分）?以及描述for循环语法的执行过程（2分）?
for 临时变量 in 可迭代对象:
    循环体
    获取这个临时变量
else:
    只要没有通过break退出循环,都会执行的代码

str,list,dict,tuple这些数据类型都能for循环
for循环会依次提取出可迭代对象中的元素,赋值给临时变量,直到所有元素遍历完

16.写出切片的详细语法（1分）？切片可以应用于哪些数据类型（1分）？有一个列表li=[1,2,3,4,5,6,7,8,9]，表达式li[0::-3]得到的数据具体是多少（1分），表达式li[-1::-2]得到的又是什么（1分）？
list[start:end:step]    start(开始下标,包括这个下标数)     end(结束下标,不包括结束位置的元素)    step(步数,提取的间隔,默认为1)
可以应用字符串,列表,元组
li[0::-3] 得到的数据为None    li[-1::-2]得到的数据为7

17. 什么样的数据放在列表中（1分）？定义列表的语法是什么（1分）？分别从增删改查4个方面，写出列表中的常见操作的语法(英文)及其作用（增-2分 删-2分 改-3分 查-4分 分数是给的总结中重点的分数，多答不扣分，答错或少答扣分）?
列表中可以存放任意数据类型
空列表 list1 = []  非空列表 list2 = [元素1, 元素2, ...]
增   list.insert(索引, 数据)     list.append(数据) 末尾的数据整体追加到列表末尾      list.extend(序列) 将序列中的元素依次追加到列表的末尾
删   del list[下标]        list.remove(数据) 删除指定数据的第一个      list,pop([下标]) 指定下标弹出元素,如果没有与指定下标,弹出列表的最后一个元素       list.clean() 清空列表
改   list[下标] = 新的元素值
查   list.index(数据) 根据数据获取索引,不存在就抛出错误        len(list) 查询序列的长度       list.count(数据)

18.定义字典的语法是什么（1分）？什么样的数据放在字典中（1分）？分别从增删改查4个方面，写出字典中的常见操作的语法(英文)及其作用什么(增和改-3分 删-2分 查-4分 给分情况同17题)?
空字典 d1 = {}     d2 = dict()     非空字典 d3 = {key1:value1, key2:value2, key3:value3, ...}
key必须是不可变数据类型,一般使用字符串   value任何数据类型都行
增   dict[key] = value key在字典中存在就是修改,不存在就是添加
删   del dict[key] 删除key对应的数据      dict.pop(key) 弹出:删除且返回        dict.clean() 清空字典
改   dict[key] = value 列表中存在的key就是修改
查   print(dict[key]) key存在打印对应的value,不存在会报错     dict.get(key) key存在返回对应的value,不存在返回None

19.如何定义字符串(单行和多行)（1分）？写出字符串的操作语法(英文)及其作用什么（每个1分 共5分 视总结中的重点给分，多答不扣分，答错或少答扣分）?
定义:
str1 = 'abc'
str[下标]  根据下标获取
str[start:end:step] 字符串切片
for i in str:
    print i   字符串遍历
str1.strip()  去除左右空格
str1.split()  字符串分割
str1.upper()  转大写
str1.lower()  转小写
str1.startswith(ab)  判断开始
str1.endswith(bc)  判断结尾
print('姓名：{}, 年龄：{}, 地址：{}'.format(name, age, addr))   格式化
str.join(list)  字符串拼接
str.replace(原内容, 替换内容)  字符串替换
str.isdigit  判断是否纯数字组成
str.isalpha  判断是否纯字母组成
str.isalnum  判断是否数字和字母组成

20.函数的定义以及调用的语法（定义2分 调用1分）？ 定义函数三步曲是什么，写详细点（2分）？
# 定义                                说明: 1.函数名要遵循标识符命名规则
def 函数名():                               2.函数名尽量要见名知意
    功能代码 (函数体)                        3.函数定义之后,并不会执行函数体的代码
# 调用                                     4.只有函数被调用的时候,才会执行函数体的代码
函数名()                                   5.定义好的函数可以重复调用

21.请描述你所了解的变量的作用域（2分）？如何在函数内修改全局变量的值（1分）?
变量的作用域就是变量的生效范围,作用域分为全局作用域和局部作用域,函数外部的作用域成为全局作用域,内部成为局部作用域
通过global在函数内部修改全局变量

22.匿名函数的语法（0.5分）？匿名函数有什么特点（1.5分）?
语法: lambda [参数1, 参数2,...]: 表达式
特点: 1.没有名字
     2.函数体的运算结果,不需要return返回,会自动把运算结果返回

23.return、break、continue的分别适用在哪个语法中（1.5分）？break、continue的作用是什么（1分）？return有哪几个知识点（2.5分）?
return: 直接返回函数,所有该函数体内的代码(包括循环体)都不会再执行.
break: 跳出所在的当前整个循环,到外层代码继续执行
continue: 跳出本次循环,从下一个迭代继续运行循环,内层循环执行完毕,外层代码继续执行
return: 用来返回函数的结果
不写return返回None
写了return后面不跟内容返回None
写了return后面跟了内容,函数在哪被调用,return的内容就返回在哪
return后面的代码都不会执行

24.为什么要使用打包（0.5分）？请写出代码简述什么是打包（4分）？
把函数需要调用的参数打包成一个序列方便传入
list1 = [1, 2, 3]

def fn1(*args):
    print(args)

fn1(*list1)

25.为什么要使用拆包（0.5分）？请写出代码简述什么是拆包（4分）？
将序列中的元素依次赋值给变量,方便调用
list1 = [1, 2, 3]
a, b, c = list1
print(a, b, c)

26.如何将列表里面的元素进行去重，写一段代码阐述（1分）。
list1 = [1, 1, 2, 2, 3, 3]
list2 = list(set(list1))
"""


